﻿namespace SS.WPF.Framework.ViewModel
{
    public interface IErrorDectector
    {
        bool HasError { get; }
    }

    public interface IEditor : IErrorDectector
    {
        object Input { get; set; }

        bool IsEditorDirty { get; set; }

        string DisplayName { get; set; }

        bool IsIdChanged { get; }

        bool IsMetadataOrDictionaryPathChanged { get; }

        void ResetDirty();

        void RevertData();

        bool IsGeneralSettingDirty { get; }
    }

    public interface IResetable
    {
        void ResetItem(string item);
    }

    public interface IEditor<T> : IEditor
    {
        new T Input { get; set; }
    }

    public interface IDeletable
    {
        void Delete();
    }
}
